Embodiments herein generally relate to loading markup language files from a server to a browser and more particularly to a methodology that increases speed and reduces the demand on computing resources when so processing and storing such files.
In recent years web based applications have migrated to a model-view-controller architecture. The view portion of this architecture has been largely dominated by the use of Cascading Style Sheet (CSS) classes that layout UI widgets and format various displayable objects. Most browsers now support rich CSS capability so that almost no “view” information is required in the markup page. Instead, the markup page is required to make requests to the server to load a set of CSS classes which supply the formatting for the page. For a more detailed discussion and examples of the use of CSS classes see U.S. Patent Publications 2002/0025085, 2005/0160065, and 2005/0268230 (the complete disclosures of which are incorporated herein by reference).
Conventionally, when the browser receives these CSS classes the browser must parse the classes and apply them appropriately to the various viewable objects before the browser displays the page. This cycle of loading a page, loading the CSS classes, parsing the classes and then applying them to viewable objects is repeated for each page that is displayed. Frequently, large numbers of CSS classes are stored in a single file that is then loaded into several markup language pages. Sometimes several CSS files must be loaded into a single markup language page to access the desired CSS classes. Frequently some classes loaded aren't even used on the requesting page. The end result is that the browser most likely has to expend more processing cycles loading and parsing CSS classes than is necessary to perform the job that is needed. This typically is not a problem in the average desktop environment; however, when the browser and server are running in the same inexpensive, under-powered, embedded processor with limited memory and no disk, this can contribute to potential user interface performance problems.